﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Text;
using Dominio;
using Servicios;
using Indices;

namespace WCFServices
{

    public class RemoteServiceImpl :  IRemoteService
    {

        private IUsuarioClienteService usuarioService = FabricaDeServicios.ObtenerInstancia().ObtenerUsuarioClienteService();

        private IVideoService videoService = FabricaDeServicios.ObtenerInstancia().ObtenerVideoService();

        private IIndexManager indexManager = FabricaDeIndices.ObtenerInstancia().ObtenerIndexManager();

        private static RemoteServiceImpl instancia = new RemoteServiceImpl();

        private RemoteServiceImpl() : base() { }

        public static IRemoteService ObtenerInstancia() {
            return instancia;
        }


        public IList<FileSystemElement> Buscar(string keyword, string nombreUsuario)
        {
            return this.indexManager.Buscar(keyword, nombreUsuario);
        }

        public bool ValidarUsuarioCliente(string nombreUsuario, string password)
        {
            return this.usuarioService.ValidarUsuarioCliente(nombreUsuario, password);
        }

        public IList<string> ObtenerTodos()
        {
            return this.videoService.ObtenerTodos();
        }
    }
}
